笔记 Ruby 之父松本行弘:程序员的乐趣、存在感与平衡.md

文章目录
  1. 1. 参考资料

原文: https://gitee.com/gitee-stars/12https://zhuanlan.zhihu.com/p/84470460)

您在书里提到过,阅读开源代码是您获取编程知识的重要方式。现在开源发展非常迅速,有非常多的可供阅读和学习的素材,另一方面,也会有难以选择的困扰,对于如何更高效地学习开源代码,您有什么看法?

松本行弘:先说结论,我认为这是因人而异的。说实话,没有那种每个人阅读了都会有用的源代码,所以还是应该根据自己想要掌握的技术或者兴趣领域来选择。

我个人对编程语言的开发很感兴趣,从学生时代开始阅读了很多关于编程语言的源代码,了解了其他的编程语言的设计与开发细节。假设你对操作系统很感兴趣,可以通过阅读 Linux 的源代码来学习操作系统的相关知识;假设你对 Web 应用感兴趣,可以通过阅读其他人写的 Web 应用代码或者框架来学习。总之,根据自己的兴趣和需要掌握的技能来选择学习的源代码。

1
wxy: 我应该学习sklearn的源代码

您觉得工作与生活应该怎样平衡?现在中国的软件工程师加班情况特别普遍,996、997 甚至还有号称 007 的公司,很多程序员都觉得疲于奔命,工作之余还要给自己充电防止被淘汰,这样说实话基本照顾不到家庭。我们知道您和妻子一共有四个孩子,还养了一只狗和一只猫,您平衡工作与生活的秘诀是什么?

松本行弘:一天有 24 小时这对谁都是公平的,不管是男女老少一天都只有 24 小时。除去睡觉的时间,会剩下 16 小时左右。这 16 小时如何支配是由个人意志决定的:什么时间去公司,什么时间吃饭,什么时间与家人一起度过。 如何支配时间是由个人价值观中的优先顺序(Priority)来决定的,工作有时真的是很有吸引力,你经过努力获得了预想的结果,充满成就感。渐渐地,工作的优先级会越来越高,花在工作上的时间越来越长,相对地,与家人相处的时间就会变短,有时会引发家庭问题或者健康问题。

我在结婚之前就和家人约定好,把家庭放在优先级最高的位置。我有时沉迷于Ruby开发而不能自拔,这时候我妻子就会提醒我:“我们约好的不是?”“对对对,我忘了(笑)。”家庭和工作的优先级,和家人事先达成共识,是一件非常重要的事。生活和工作像一个天平,当我渐渐偏向工作的时候,我的妻子就会把我拉回来,在这样的反反复复之中,我们一家人走到了现在。

首先,确定家庭和工作的优先级,有条件的话把你的优先级告诉别人,这样在你违反优先级的时候,可能就会有人提醒你。如果你只把优先级藏在自己心里,常常会因为工作太有意思而忘记了优先级。

第二,在工作中,尊重是一件十分重要的事,比如我尊重我的工作,在截止日期之前把工作完成;反过来,公司也需要尊重我,为了保证我的工作效率,不制定不人性的规则,或者准备一些能够提高工作效率的工具,不过度干涉我的工作,这是一种双赢的机制。

不过管理者有时不是很懂技术,有些管理者甚至没有写过代码,这样就需要用各种方式和渠道,将你提高生产效率的方法传达给他:“我通过×××的方式,可以提高生产效率。”你如果直接找管理者谈话,他可能会不太能理解:“该不是在怠工吧?该不是不想工作才想出这样的点子吧?”假如有人在博客上论述自由度对真正提高程序员生产效率的重要性,或者长期加班的害处,通过各种方式让管理者理解,IT 业界长期加班不利于生产效率的提高,而且还会引发各种家庭问题,对公司和程序员都不是好事,上述双赢机制对整个 IT 生态的健康发展大有裨益。

日本的企业这几年越来越体会到加班的坏处,加班文化较之前有了很大的改善,虽然还有很大一部分人还在饱受加班之苦,希望中国的互联网企业也能做到这点。如果你在做出各种努力之后依然得到不到尊重,那么我建议跳槽。

日本把这样的企业叫做 “黑心企业”,顾名思义,这样的企业不尊重从业者,令其长期加班,严重损害从业者的身体健康。其实这种企业的存在,也部分归因于从业者的隐忍,如果从业者都能及时止损,这样的企业就渐渐消失了,这是我一直给别人的忠告。

程序员也是人,虽然三岁小孩都知道,但人们往往只把程序员看做一个编程的工具。我们要努力让大家知道,我们也是人,我们也需要休息来提高生产效率,我们的工作并不是大家所想象的那样机械化。例如盖房子,假设房子下周就要完工了,然后你提出:“不好意思,麻烦把房子向右移 5cm。”可能你觉得“才 5cm 很简单嘛。”,但是如果真的这么说肯定会被打,这个道理大家都能理解。但程序员就常常遇到在项目即将完工前要求改需求的情况,这时应该坚定地拒绝,让社会了解程序员的真实面目以及平时工作的艰辛,才能获得相应的尊重。

参考资料